Web sketch: LINK
One interaction on the web that I found compelling is the WebGL example for lens flare.
I found the open-world space navigation very fluid and intuitive. It matches the feeling of flying well. To navigate the space, you only need one mouse input, which will influence the direction you’re looking at and whether or not you’d like to move forward. To stay still, your mouse can stay in the center. To change the direction of the camera, you would push it towards the direction you’d like to pan to. The further the mouse is from the camera, the faster the camera will pan. If you click the mouse, the camera will move forward so that you can move in space.
I tried out implementing this interaction to my previous week homework assignment. I did this by removing the first person controls and creating my own camera movement. I had a mouse tracker (ev.clientX and ev.clientY) that took note of where the mouse position was in relation to the center of the canvas. Then, depending if the mouse was facing left, right, up, or down, the camera would rotate towards that direction. Next, I tried to push the camera to move whenever the mouse was held down. I had a bit of trouble with this—the camera was only be pushed once per mouse click, but I wanted the pushing to be continuous as the mouse was held down.
Additionally, when I translated this interaction to my bathhouse, I realized that this interaction wasn’t as suitable as it was for the space-like flying movement in the example I found. The anti-gravity, flowy movement didn’t match as well with my box-shaped bathhouse, where the user would expect a more rigid walking movement.